﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace projetoFinal
{
    public class cliente
    {
        #region Atributos
        protected Int64 codCadastro;
        protected string nome;
        protected string matricula;
        protected string cnpj;
        protected string razaoSocial;
        protected string cep;
        protected string endereco;
        protected string complemento;
        protected string numero;
        protected string bairro;
        protected string cidade;
        protected string uf;
        protected string fone;
        protected tipoPlano tipoPlano;
        protected double? valorPlano;
        protected status status;
        protected situacaoFinanceira sitFinanceiro;
        #endregion

        #region Propriedades
        public Int64 CodCadastro
        {
            get { return codCadastro; }
            protected set { codCadastro = value; }
        }
        public string Nome
        {
            get { return nome; }
            set { nome = value.Trim(); }
        }
        public string Matricula
        {
            get { return matricula; }
            set { matricula = value.Trim(); }
        }
        public string Cnpj
        {
            get { return cnpj; }
            set { cnpj = value; }
        }
        public string RazaoSocial
        {
            get { return razaoSocial; }
            set { razaoSocial = value.Trim(); }
        }
        public string Cep
        {
            get { return cep; }
            set { cep = value.Trim(); }
        }
        public string Endereco
        {
            get { return endereco; }
            set { endereco = value.Trim(); }
        }
        public string Complemento
        {
            get { return complemento; }
            set { complemento = value.Trim(); }
        }
        public string Numero
        {
            get { return numero; }
            set { numero = value.Trim(); }
        }
        public string Bairro
        {
            get { return bairro; }
            set { bairro = value.Trim(); }
        }
        public string Cidade
        {
            get { return cidade; }
            set { cidade = value.Trim(); }
        }
        public string Uf
        {
            get { return uf; }
            set { uf = value.Trim(); }
        }
        public string Fone
        {
            get { return fone; }
            set { fone = value.Trim(); }
        }
        public tipoPlano TipoPlano
        {
            get { return tipoPlano; }
            set { tipoPlano = value; }
        }
        public double? ValorPlano
        {
            get
            {
                if (valorPlano.HasValue == true)
                {
                    return valorPlano.Value;
                }
                else
                {
                    return 0;
                }
            }
            set { valorPlano = value; }
        }
        public status Status
        {
            get { return status; }
            set { status = value; }
        }
        public situacaoFinanceira SitFinanceiro
        {
            get { return sitFinanceiro; }
            set { sitFinanceiro = value; }
        }
        #endregion

        #region Métodos
        public cliente()
        {
            this.CodCadastro = 0;
            this.Nome = string.Empty;
            this.Matricula = string.Empty;
            this.Cnpj = string.Empty;
            this.RazaoSocial = string.Empty;
            this.Cep = string.Empty;
            this.Endereco = string.Empty;
            this.Complemento = string.Empty;
            this.Numero = string.Empty;
            this.Bairro = string.Empty;
            this.Cidade = string.Empty;
            this.Uf = string.Empty;
            this.Fone = string.Empty;
            this.TipoPlano = null;
            this.ValorPlano = null;
            this.Status = status.ativo;
            this.SitFinanceiro = situacaoFinanceira.naoInformado;
        }
        public cliente(Int64 codCadastro, string nome, string matricula, tipoPlano tipoPlano, status status, situacaoFinanceira sitFinanceiro)
        {
            this.CodCadastro = codCadastro;
            this.Nome = nome;
            this.Matricula = matricula;
            this.Cnpj = string.Empty;
            this.RazaoSocial = string.Empty;
            this.Cep = string.Empty;
            this.Endereco = string.Empty;
            this.Complemento = string.Empty;
            this.Numero = string.Empty;
            this.Bairro = string.Empty;
            this.Cidade = string.Empty;
            this.Uf = string.Empty;
            this.Fone = string.Empty;
            this.TipoPlano = tipoPlano;
            this.ValorPlano = null;
            this.Status = status;
            this.SitFinanceiro = sitFinanceiro;
        }
        #endregion
    }
}
